<!DOCTYPE html>
<html lang="zh">

<head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <title>函数</title>
    <link rel="stylesheet" href="">
</head>

<body>
    <script>
    "use strict";

    function p(s) {
        document.write("<p class='content'>" + s + "</p>");
    }

    function plus(a, b) {
        return a + b;
    }

    // notHoisted(); // 使用表达式创建的函数，不能在创建之前调用

    var notHoisted = function() {
        console.log('bar');
    };

    p(plus(1, 2));
    p(plus);

    // 默认参数
    function multiply(a, b = 1) {
        return a * b;
    }

    multiply(5, 2); // 10
    multiply(5, 1); // 5
    console.log(multiply(5)); // 5

    /* 定义函数 myFunc */
    function myFunc(theObject) {
        //实参 mycar 和形参 theObject 指向同一个对象.
        theObject.brand = "Toyota";
    }

    /*
     * 定义变量 mycar;
     * 创建并初始化一个对象;
     * 将对象的引用赋值给变量 mycar
     */
    var mycar = {
        brand: "Honda",
        model: "Accord",
        year: 1998
    };

    /* 弹出 'Honda' */
    console.log(mycar.brand);

    /* 将对象引用传给函数 */
    myFunc(mycar);

    /*
     * 弹出 'Toyota',对象的属性已被修改.
     */
    console.log(mycar.brand);

    function fun1(a = 1) {
        return a + 1;
    }

    // 实参为字面量变量
    let b = 5;
    console.log(fun1(b));
    console.log(b);
    </script>
</body>

</html>